Screaming Architecture
アーキテクチャはフレームワークのためのものではない
(あるいはそうすべきではない)。
アーキテクチャはフレームワークによって供給されるべきではない。
フレームワークは使用するためのツール
適合させるためのアーキテクチャではない。
一戸建て住宅の場合、玄関を入ると、ホワイエからリビングルーム、そしてダイニングルームがあります。キッチンは、ダイニングルームのすぐ近くにあります。キッチンの隣にはダイネットエリアがあり、その近くにはファミリールームがあるかもしれません。この図面を見て、あなたが家を見ていることに疑問の余地はないでしょう。建築は「家」であると叫ぶだろう。
設計図には、作りたい対象に関する構成要素が入っているべきで、これらの要素を見ただけで、これは〜〜だ、と分かるようになってるべき
構成要素が「叫んでいる」ようにすべき
構成要素が、モデルだとかコントローラだとか、RailsだとかSpringだとかReactだとか、そういう言葉を使っても、何も分からん
あくまでそれらは、実装するための手段
miyamonz.iconが言いたいこと
まず、このScreaming Architectureの考えにほぼ全面同意
アーキテクチャが叫ぶべき
ここにおいて、叫んで聞こえるもの(ぱっと見ることができる構成要素)だけで、何がどう実現されているのかがわかるのがベスト
ライブラリのソースコードを読んだとき、フォルダ名、ファイル名を第一、第2階層を眺めただけで、全体像が把握できることが良いい
実現するための技術的な側面の名前を出すべきではない
フロントエンドにおいては、componentsとかhooksとかutils, constantsとか
utilsとかは、他に置き場がないから置く分にはOK。
ファイルの行数が増えてきたらおかしいと察知せよ
見ただけでわかる、ということを実現することは、そのソフトウェアが適切な粒度でシステム化、モデル化されていることと強く相関する
ソフトウェア出ない物事は、モデルの理解と実運用に多少の乖離があるはず
ソフトウェアは、ソフトなので、この乖離を減らす方向に努力すると良い
そうすると、理解することと、実運用(開発)がうまくつながるはず